# 设置项目类型为库（lib）
TEMPLATE = lib
# 插件目标名称（最终生成 plugin2.dll / libplugin2.so）
TARGET = plugin2
# 依赖 Qt 模块：qml 和 quick
QT += qml quick
# 启用插件支持 + C++11 标准
CONFIG += plugin c++11

#确保动态库名称符合平台规范（如 libplugin2.so, plugin2.dll） registerTypes
TARGET = $$qtLibraryTarget($$TARGET)
## 定义模块 URI，用于 QML 中 import com.mycompany.qmlcomponents
uri = com.mycompany.qmlcomponents

# Input
SOURCES += \
        plugin2_plugin.cpp \
        myitem.cpp

HEADERS += \
        plugin2_plugin.h \
        myitem.h

# 声明 qmldir 文件为资源文件（不会编译，但会参与构建过程）
DISTFILES = qmldir

#_PRO_FILE_PWD_：是 .pro 文件所在目录的路径（即源码目录）
#OUT_PWD：是构建输出目录的路径（即你运行 qmake 时所在的目录，通常是 build 目录）
!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
# 如果源码目录与构建目录不同，则复制 qmldir 文件到构建目录
    copy_qmldir.target = $$OUT_PWD/qmldir
    copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
    copy_qmldir.commands = $(COPY_FILE) "$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)" "$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)"
    QMAKE_EXTRA_TARGETS += copy_qmldir
    PRE_TARGETDEPS += $$copy_qmldir.target
}
# 定义 qmldir 安装路径
qmldir.files = qmldir
unix {
# 在 Unix 系统下安装到 Qt 的 QML 模块目录中
    installPath = $$[QT_INSTALL_QML]/$$replace(uri, \., /)
    qmldir.path = $$installPath
    target.path = $$installPath
    INSTALLS += target qmldir
}

message("pugin2 Source dir: " $$_PRO_FILE_PWD_)
message("pugin2 Build dir: " $$OUT_PWD)
